﻿using System;
using System.Collections.Generic;
using LoungeRepo.Contracts.Core;

namespace LoungeRepo.Contracts.Normalizer
{
    public delegate INormalizedEntity EntityResolutionRequestDelegate(ILoungeRepoEntityIdentity entityReference);


    public interface INormalizedField
    {
        string Name { get; }
        object Value { get; }
    }

    public interface INormalizedObjectReference
    {
        string RefId { get; }
    }

    public interface INormalizedObject
    {
        string RefId { get; }
        Type ObjectType { get; }
        IEnumerable<INormalizedField> Fields { get; }
    }

    public interface INormalizedEntity : ILoungeRepoEntityIdentity, INormalizedObject
    { }
}
